class LiczbaException extends Exception {
  LiczbaException (String s) {
    super (s);
    }
  };

public class Liczba {
  private int n;
  private String wzor = "0123456789ABCDEF";
  Liczba() {
    System.out.println(" niewlasciwa liczba argumentow");
  }
  Liczba (int n) {
   this.n = n;
  }
  Liczba (String n, int podstawa) throws LiczbaException {
    
    if (podstawa < 2 || podstawa > 16) 
      throw new LiczbaException(" niewlasciwa podstawa");
    
    ;
    String zapis = wzor.substring(0, podstawa);
    int x = 0;
    int p = 1;
    int wynik = 0;
    
    for (int i = n.length()-1; i >= 0; i--) {
      boolean test = true;
    
      for( int j=0; j < podstawa; j++){
	if ( n.charAt(i) == zapis.charAt(j)){
	  x = j;
	  test = false;
	}
      }
      
      if(test)
	throw new LiczbaException(" podana liczba ma blad w zapisie");
	
      wynik += x * p;
      p = p * podstawa;
    }
     this.n = wynik;  
  }  
  public String zapis (int podstawa) throws LiczbaException {
    if (podstawa < 2 || podstawa > 16)
      throw new LiczbaException (" zly argument podstawy");
    int pomoc = n;
    String wynik= "";
    wzor = "0123456789ABCDEF";
    String zapis = wzor.substring(0, podstawa);
    while ( pomoc > 0 ){
      wynik = zapis.charAt( pomoc % podstawa) + wynik;
      pomoc /= podstawa;
    }
    return wynik;
  }
}
